iconview: Don't queue redraws when nothing changes
authorBenjamin Otte <otte@redhat.com>
Mon, 15 Sep 2014 14:06:41 +0000 (16:06 +0200)
committerBenjamin Otte <otte@redhat.com>
Mon, 15 Sep 2014 14:35:40 +0000 (16:35 +0200)
We were queueing redraws for the old and the new prelit item, even when
they were the same item.

gtk/gtkiconview.c

index fc3e6505eac0711b2567bf7a003dedf5e44796b6..91efa40625f3d8b739e813275dce61220d60ef0e 100644 (file)
@@ -2038,21 +2038,23 @@ gtk_icon_view_motion (GtkWidget      *widget,
                                                FALSE,
                                                &cell);
 
-      if (item != NULL)
+      if (item != last_prelight_item)
         {
-          item->prelight = TRUE;
-          gtk_icon_view_queue_draw_item (icon_view, item);
-        }
+          if (item != NULL)
+            {
+              item->prelight = TRUE;
+              gtk_icon_view_queue_draw_item (icon_view, item);
+            }
 
-      if (last_prelight_item != NULL &&
-          last_prelight_item != item)
-        {
-          last_prelight_item->prelight = FALSE;
-          gtk_icon_view_queue_draw_item (icon_view,
-                                         icon_view->priv->last_prelight);
-        }
+          if (last_prelight_item != NULL)
+            {
+              last_prelight_item->prelight = FALSE;
+              gtk_icon_view_queue_draw_item (icon_view,
+                                             icon_view->priv->last_prelight);
+            }
 
-      icon_view->priv->last_prelight = item;
+          icon_view->priv->last_prelight = item;
+        }
     }
   
   return TRUE;